home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Apple II Magazines (PO)
/
Nibble Volume 12, No. 09 (1991-09)(MindCraft Publishing)(Side A)[no boot].zip
/
Nibble Volume 12, No. 09 (1991-09)(MindCraft Publishing)(Side A)[no boot].po
/
NIBBLE.1991:SEP.VOL12.NO09
/
PS.CONVERT.BAS
< prev
next >
Wrap
BASIC Source File
|
1996-12-24
|
7KB
|
124 lines
10 REM
12 REM PRINT SHOP CONVERTER
14 REM BY BY CLEMESHA
16 REM COPYRIGHT (C) 1991
18 REM MINDCRAFT PUBL. CORP.
20 REM LINCOLN, MA 01773
30 REM
40 LOMEM: 24576: DIM A$(61),B$(61),AA$(61)
50 D$ = CHR$(4):G$ = CHR$(7):H$ = CHR$(8):J$ = CHR$(10):K$ = CHR$(11):M$ = CHR$(13):U$ = CHR$(21):ESC$ = CHR$(27):SD$ = ",S6,D1":DD$ = ",S6,D2":DL$ = "NO ":DC$ = DL$
60 REM CTRLD, BELL, BACKSPACE, DOWN, UP, RETURN, RIGHT, ESCAPE, SOURCE DRIVE, DESTINATION DRIVE, DELETE AND PAUSE FLAGS
70 FOR N = 1 TO 18:H18$ = H18$ +H$: NEXT N: REM 18 BACKSPACES
80 PRINT D$"BLOAD PS.CONVERT.0":CNVRT = 7168: ONERR GOTO 1150: REM LOAD ML PROGRAM
90 FOR N = 1 TO 8: READ MENU$(N): NEXT N:N = 1: GOSUB 310: REM READ MENU ITEMS
100 REM PRINT MENU SCREEN
110 PRINT D$"PR#3"M$: HOME :LM = 35:WI = 2: GOSUB 1080: PRINT
120 FOR N1 = 1 TO 23: PRINT "|": NEXT :LM = 0:WI = 34: GOSUB 1080: VTAB 1: PRINT " PS.CONVERT"M$" Print Shop Clip Converter"M$M$"Copyright 1991, MindCraft Publ.": FOR N1 = 1 TO 34: PRINT "_";: NEXT
130 TEXT : GOSUB 1070: GOSUB 330: VTAB 6: FOR N1 = 1 TO 8: HTAB 4: PRINT MENU$(N1) +M$: NEXT N1: GOTO 190
140 REM MENU ROUTINE
150 M = VAL(KE$): IF M >0 AND M <9 THEN N = M: GOTO 190
160 IF KE$ = K$ OR KE$ = U$ THEN N = N -1: IF N <1 THEN N = 8
170 IF KE$ = J$ THEN N = N +1: IF N >8 THEN N = 1
180 IF KE$ = M$ THEN ON N GOTO 210,220,350,360,780,970,990,1100
190 GOSUB 330: GOSUB 1070: HTAB 4: VTAB (4 +2 *N): INVERSE : PRINT MENU$(N);: NORMAL : GET KE$: HTAB 4: PRINT MENU$(N);: GOTO 150
200 REM GET SLOT AND DRIVE NUMBERS
210 GOSUB 230:SD$ = TEMP$: GOSUB 310: GOTO 190: REM SOURCE DRIVE
220 GOSUB 230:DD$ = TEMP$: GOSUB 310: GOTO 190: REM DESTINATION DRIVE
230 GOSUB 330: PRINT " SLOT #: ";: GET KE$:: IF KE$ <"8" AND KE$ >"0" THEN TEMP$ = ",S" +KE$: GOTO 260
240 IF KE$ = ESC$ THEN 290
250 PRINT G$: GOTO 230
260 GOSUB 330: PRINT " DRIVE 1/2 ? ";: GET KE$: IF KE$ <"3" AND KE$ >"0" THEN TEMP$ = TEMP$ +",D" +KE$: GOTO 290: REM SET SLOT AND DRIVE
270 IF KE$ = ESC$ THEN 290
280 PRINT G$: GOTO 260
290 GOSUB 330: RETURN
300 REM APPEND SLOT AND DRIVE NUMBERS TO MENU ITEMS
310 MENU$(1) = LEFT$(MENU$(1),16) +SD$:MENU$(2) = LEFT$(MENU$(2),21) +DD$: RETURN
320 REM CLEAR INPUT LINE
330 VTAB 21: PRINT : PRINT SPC( 34): VTAB 21: PRINT : RETURN
340 REM FILE MENU/CATALONG ROUTINES
350 PRINT D$"PREFIX"DD$: GOTO 370: REM SET DESTINATION PREFIX
360 PRINT D$"PREFIX"SD$: REM SET SOURCE PREFIX
370 GOSUB 1050:WI = 79: GOSUB 1080: HOME : REM CLEAR SCREEN
380 PRINT M$"PLEASE WAIT":ER = 0:NF = 1
390 PRINT D$"PREFIX": INPUT P$
400 PRINT D$"OPEN"P$",TDIR": PRINT D$"READ"P$: REM OPEN DIRECTORY
410 BLOCKS = PEEK(48825) +256 * PEEK(48826) - PEEK(48828) -256 * PEEK(48829): INPUT C$,C$,C$: IF N = 4 THEN 470:: REM FREE SPACE
430 REM READ DIRECTORY OF DESTINATION DISK
440 INPUT AA$(NF): IF AA$(NF) = "" THEN 510
450 AA$(NF) = MID$ (AA$(NF),2,16):NF = NF +1: GOTO 440
460 REM READ DIRECTORY OF SOURCE DISK
470 B$(NF) = " ": INPUT A$(NF): IF A$(NF) = "" THEN 510
480 IF MID$ (A$(NF),18,3) < >"BIN" THEN 470
490 A$(NF) = MID$ (A$(NF),2,16):NF = NF +1: GOTO 470
510 PRINT D$"CLOSE": VTAB 1: HTAB 1
520 IF N = 3 THEN NN = NF -1: PRINT M$"Destination Volume Catalog": GOTO 550
530 NM = NF -1: PRINT M$"Use Arrow Keys to Select/Deselect Files"
540 REM PRINT FILE LIST
550 PRINT M$"Volume: "P$M$: PRINT BLOCKS;" blocks free"
560 FOR J = 1 TO 79: PRINT "_";: NEXT : IF NM *(N = 4) +NN *(N = 3) = 0 THEN PRINT M$"No Files ";: GET KE$: GOTO 100
570 FOR NF = 1 TO NM *(N = 4) +NN *(N = 3)
580 GOSUB 720: NEXT
590 IF N = 3 THEN HTAB 79: GET KE$: GOTO 100: REM RETURN TO MAIN MENU
600 REM SELECT/DESELECT FILES
610 NF = 1
620 INVERSE : GOSUB 720: GET KE$
630 IF KE$ = ESC$ OR KE$ = M$ THEN NORMAL : GOTO 100
640 IF KE$ = U$ THEN B$(NF) = "=>"
650 IF KE$ = H$ THEN B$(NF) = " "
660 IF KE$ = "A" OR KE$ = "a" THEN NORMAL : FOR NF = 1 TO NM:B$(NF) = "=>": GOSUB 720: NEXT NF: GOTO 610: REM SELECT ALL
670 IF KE$ = "N" OR KE$ = "n" THEN NORMAL : FOR NF = 1 TO NM:B$(NF) = " ": GOSUB 720: NEXT NF: GOTO 610: REM SELECT NONE
680 NORMAL : GOSUB 720:NF = NF +(KE$ = J$) -(KE$ = K$)
690 IF NF = 0 THEN NF = NM
700 IF NF >NM THEN NF = 1
710 GOTO 620
720 Q = (NF >13) +(NF >26) +(NF >39)
730 ROW = 8 +NF -13 *Q
740 COLUMN = 2 +19 *Q
750 VTAB ROW: HTAB COLUMN: IF N = 4 THEN PRINT B$(NF) +A$(NF);: RETURN
760 PRINT " " +AA$(NF): RETURN
770 REM CONVERT FILES
780 LM = 41:WI = 38: GOSUB 1080: HOME : FOR NF = 1 TO NM: IF B$(NF) = "=>" THEN 800
790 NEXT : PRINT "No Files Selected "G$;: GET KE$: GOTO 190
800 PRINT "Clip Conversions"M$:TM = 2:BM = 23: GOSUB 1060
810 FOR NF = 1 TO NM: IF B$(NF) < >"=>" THEN 910
820 PRINT A$(NF);:L = 1: IF PEEK( -16384) = 155 THEN 920: REM ESCAPE TO MENU
830 IF MID$ (A$(NF),L,1) < >" " THEN L = L +1: GOTO 830: REM REMOVE SPACES
840 SF$ = LEFT$(A$(NF),L -1):DF$ = LEFT$(SF$,10) +".CLIP": REM APPEND ".CLIP" TO FILE NAME
850 IF DC$ = "YES" THEN MSG$ = "Insert Source Disc": GOSUB 940
860 POKE -16368,0: PRINT D$"BLOAD"SF$",A$4400,L576"SD$: CALL CNVRT: IF PEEK( -16384) = 155 THEN 920
870 IF DC$ = "YES" THEN MSG$ = "Insert Destin Disc": GOSUB 940
880 PRINT "=> "DF$
890 PRINT D$"BSAVE"DF$",A$4000,L842"DD$:B$(NF) = " ": REM SAVE CLIP AND MARK AS SAVED
900 IF DL$ = "YES" THEN PRINT D$"DELETE"SF$SD$
910 NEXT NF
920 GOSUB 1050: GOSUB 1070: GOTO 190
930 REM ERASE MESSAGE AND RESTORE CURSOR POSITION
940 INVERSE : PRINT MSG$;: NORMAL : GET KE$: PRINT H18$; SPC( 18);H18$;: IF KE$ = ESC$ THEN POP : GOTO 920
950 RETURN
960 REM TOGGLE DELETE FLAG
970 X$ = DL$: GOSUB 1000:DL$ = X$: GOTO 190
980 REM TOGGLE WAIT FOR DISC CHANGE FLAG
990 X$ = DC$: GOSUB 1000:DC$ = X$: GOTO 190
1000 IF X$ = "NO " THEN X$ = "YES": GOTO 1020
1010 X$ = "NO "
1020 MENU$(N) = LEFT$(MENU$(N),26) +X$: RETURN : REM APPEND YES/NO TO MENU ITEM
1030 REM SET TEXT WINDOW
1040 TM = 22:BM = 23: GOTO 1060
1050 TM = 0:BM = 23
1060 POKE 34,TM: POKE 35,BM: RETURN : REM SET VERTICAL
1070 LM = 0:WI = 35
1080 POKE 32,LM: POKE 33,WI: RETURN : REM SET HORIZONTAL
1090 REM QUIT
1100 GOSUB 330: PRINT "Sure you want to quit ? ";: GET KE$: IF KE$ = "Y" OR KE$ = "y" THEN WI = 79: GOSUB 1080: HOME : END
1110 IF KE$ < >"N" AND KE$ < >"n" THEN 1100
1120 GOSUB 330: GOTO 190
1130 DATA "1: SOURCE DRIVE:","2: DESTINATION DRIVE:","3: CATALOG DESTINATION VOLUME","4: SELECT FILES","5: CONVERT FILES: ","6: DELETE ORIGINAL FILES: NO","7: PAUSE FOR DISC CHANGE: NO","8: QUIT TO BASIC"
1140 REM ERROR HANDLING ROUTINE
1150 ER = PEEK(222): IF ER = 5 THEN 510
1160 MSG$ = " * ANY KEY TO CONTINUE ": IF ER = 3 THEN MSG$ = " * NO DEVICE CONNECTED "
1170 IF ER = 4 THEN MSG$ = " * WRITE PROTECTED "
1180 IF ER = 8 THEN MSG$ = " * I/O ERROR "
1190 IF ER = 9 THEN MSG$ = " * DISK FULL "
1200 IF ER = 10 THEN MSG$ = " * FILE LOCKED "
1210 IF ER = 17 THEN MSG$ = " * DIRECTORY FULL "
1220 GOSUB 1040: GOSUB 1070: GOSUB 330: VTAB 22: HTAB 1: PRINT G$MSG$;: GET KE$: GOSUB 330: GOTO 110